#pragma once
#include <functional>

using namespace std::tr1;

class InfoVertice
{
public:
	InfoVertice(void);
	InfoVertice(int id, bool terminal) : idVertice(id), esTerminal(terminal) {};
	InfoVertice(const InfoVertice &);

	InfoVertice & operator=(const InfoVertice & iv);
	virtual ~InfoVertice(void);

	int idVertice;
	bool esTerminal;

	friend class InfoVerticeHash;
	friend class InfoVerticeEqual;
};

class InfoVerticeHash
{
	public:
		size_t operator()(const InfoVertice& iv) const { 
			return hash<int>()(iv.idVertice); 
		}
};

class InfoVerticeEqual
{
	public:
		bool operator() (const InfoVertice& iv1, const InfoVertice& iv2) const {
			return iv1.idVertice == iv2.idVertice;
		}
};
